package com.xxx.springboot.util;

import java.util.Random;

public class UUIDUtils {

	private static final char[] SOURCES = "abcdefghijklmnopqrstuvwxyz1234567890".toCharArray();

	/**
	 * 创建一个长度为32字节的随机串，由字母和数字组成，字母为大写
	 * 该方法为线程安全
	 * 
	 * @return
	 *
	 */
	public static String createUUID32() {
		return _createRStr(32);
	}

	/**
	 * 创建一个长度为 8 字节的随机串，由字母和数字组成，字母为大写
	 * 该方法为线程安全
	 * 
	 * @return
	 *
	 */
	public static String createUUID8() {
		return _createRStr(8);
	}

	/**
	 * 创建一个长度为 n 字节的随机串，由字母和数字组成，字母为大写
	 * 该方法为线程安全
	 * 
	 * @return
	 *
	 */
	public static String createUUIDN(int n) {
		return _createRStr(n);
	}

	private static String _createRStr(int length) {
		StringBuilder s = new StringBuilder(length);

		Random r = new Random();
		for (int i = 0; i < length; i++) {
			s.append(SOURCES[r.nextInt(SOURCES.length)]);
		}
		return s.toString().toUpperCase();
	}

	public static void main(String[] args) {
		System.out.println(createUUID32());
		System.out.println(createUUID8());
		System.out.println(createUUIDN(10));
	}

}
